<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:out="http://www.w3.org/1999/XSL/Transform-alternate" xmlns:tk="http://www.qdocuments.net" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
  <xsl:output method="xml" version="1.0" encoding="gb2312" indent="no"/>
  <xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
  <xsl:template match="/">
    <out:stylesheet version="1.0">
      <xsl:apply-templates select="xsl:stylesheet" mode="param"/>
      <xsl:apply-templates select="xsl:stylesheet/xsl:output"/>
      <xsl:apply-templates select="xsl:stylesheet" mode="var"/>
      <xsl:apply-templates select="xsl:stylesheet"/>
    </out:stylesheet>
  </xsl:template>
  <xsl:template match="xsl:output">
    <xsl:copy-of select="."/>
  </xsl:template>
  <xsl:template match="xsl:param" mode="param">
    <xsl:copy-of select="."/>
  </xsl:template>
  <xsl:template match="xsl:import" mode="param">
    <xsl:variable name="Ref" select="@href"/>
    <xsl:if test="$Ref">
      <xsl:variable name="Doc" select="document($Ref)"/>
      <xsl:apply-templates select="$Doc/xsl:stylesheet" mode="param"/>
    </xsl:if>
  </xsl:template>
  <xsl:template match="xsl:stylesheet" mode="param">
    <xsl:apply-templates select="xsl:param" mode="param"/>
    <xsl:apply-templates select="xsl:import" mode="param"/>
  </xsl:template>
  <xsl:template match="xsl:variable" mode="var">
    <xsl:copy-of select="."/>
  </xsl:template>
  <xsl:template match="xsl:import" mode="var">
    <xsl:variable name="Ref" select="@href"/>
    <xsl:if test="$Ref">
      <xsl:variable name="Doc" select="document($Ref)"/>
      <xsl:apply-templates select="$Doc/xsl:stylesheet" mode="var"/>
    </xsl:if>
  </xsl:template>
  <xsl:template match="xsl:stylesheet" mode="var">
    <xsl:apply-templates select="xsl:variable" mode="var"/>
    <xsl:apply-templates select="xsl:import" mode="var"/>
  </xsl:template>
  <xsl:template match="xsl:stylesheet">
    <xsl:apply-templates select="xsl:attribute-set | xsl:import | xsl:include | xsl:template"/>
  </xsl:template>
  <xsl:template match="xsl:import | xsl:include">
    <xsl:variable name="Ref" select="@href"/>
    <xsl:if test="$Ref">
      <xsl:variable name="Doc" select="document($Ref)"/>
      <xsl:apply-templates select="$Doc/xsl:stylesheet"/>
    </xsl:if>
  </xsl:template>
  <xsl:template match="*">
    <xsl:copy-of select="."/>
  </xsl:template>
</xsl:stylesheet>
